1. Field of the Invention
The present invention relates to computer networks, and deals more particularly with methods, systems, computer program products, and methods of doing business by performing load balancing of content requests using information regarding the cost of dynamically creating the requested document content.
2. Description of the Related Art
Load balancing solutions are known in the art which use relative server capacity to dynamically select a server to handle each incoming content request. Examples of such load balancing systems include Sysplex Distributor from the International Business Machines Corporation (“IBM”), which is included in IBM's OS/390® Transmission Control Protocol/Internet Protocol (“TCP/IP”) implementation, and the Multi-Node Load Balancer (“MNLB”) from Cisco Systems, Inc. (“OS/390” is a registered trademark of IBM.) In addition to relative server capacity, Sysplex Distributor also considers network policy information and quality of service considerations in the dynamic selection process.
A component known as Workload Management (“WLM”) is used in the OS/390 TCP/IP implementation for obtaining run-time information about the current load on particular servers for which Sysplex Distributor is performing the load balancing process. This information may then be used when selecting the target servers for the incoming client requests.
FIG. 1 provides a diagram of a representative server site 100 for which load balancing is being performed. The term “server site” as used herein refers to a collection of server nodes that serve Web content associated with a given fully-qualified domain name. For example, the server site 100 in FIG. 1 may (for purposes of example) serve content for a domain name such as “www.ibm.com”. In this example, a content request 110 is transmitted from a client (not shown) through a network such as the Internet 120 and then to a load balancing host 130 (that is, a computing device which performs the load balancing process). The load balancing host may then select one of the Web servers 140 (such as Apache, Netscape, or Microsoft servers), according to the load balancing strategy which has been implemented in host 130. To serve the requested content, a particular Web server may invoke the services of an application server (such as an IBM WebSphere® application server), where this application server may be co-located with the Web server 140 in a single hardware box or may be located at a different device 150. The Web server may also or alternatively invoke the services of a back-end enterprise data server 160 (such as IBM OS/390 servers running the DB/2, CICS®, and/or MQI products from IBM), which may in turn access one or more databases 170 or other data repositories. (“WebSphere” and “CICS” are registered trademarks of IBM.)
The load balancing host 130 may also function as a reverse proxy and/or cache server. The IBM Web Sphere Edge Server is one implementation which provides this combined functionality. For example, it may be possible in some cases to serve the requested content from cache which is accessible to host 130, rather than sending the content request on to a Web server 140.
While existing load balancing techniques may be satisfactory from a functional perspective, they may not provide an optimal solution in some situations. Accordingly, what is needed is an improved technique for performing load balancing operations.